1. Field of the Invention
The invention generally relates to automated testing systems and more specifically relates to methods, circuit structures and systems for improved automated testing of electrical interfaces and physical attributes of systems under test.
2. Discussion of Related Art
In electronic systems it is common for components within a system to be interconnected via electronic signal buses. Signals are exchanged among the various components of a system through such electronic buses. For example, in a computer storage subsystem, a storage controller within the storage subsystem may be coupled to host computers via an I/O interface bus and may be coupled to other components within the storage subsystem via internal electronic signal buses. Further, components within such a storage subsystem may be coupled to power supply signal paths to receive electrical power during normal operation.
In addition, numerous physical connections and indicators may be present in an electronic system. Physical connections between components that may or may not include related electrical connection are common in many systems. Physical indicators may also be present in a system to provide status information to a user of the system. For example, in a storage system, LED or other visual indicators or displays as well as audible alarms may be used to convey physical status information to a user of the system.
When testing such systems in a manufacturing environment it is important to test these various physical connections, interface bus connections, power supply connections and status indicators to verify proper operation of the subsystem in response to various common operating environments and common failure modes. For example, if the operation of a subsystem is specified to behave in a certain respect in response to changes in power status or loss of power, it is important to simulate such a loss of power and verify the proper operation of a system. Or for example, it may be important to verify proper operation of the subsystem in response to sensing connection and disconnection of various components within the subsystem. Still more specifically, with regard to a storage subsystem, it may be important to verify operation of the system in response to power failure, removal or insertion of disk drive storage units, host interface bus failures, and other common failure modes of a storage subsystem. Similarly, it may be important to test for proper operation of the system in response to changes in physical configuration or connectivity of the system and to verify proper operation of the status indicators and displays of the system in response to various modes of operation of the system.
It is also generally known in the art to automate the process of testing manufactured devices by applying external stimuli to the subsystem and verifying proper response of the subsystem in response to the various stimuli. Such automated test systems generally use a computer system programmed with an automated test sequence application. The automated test application follows a sequence of commands to perform certain desired tests on the system under test. The commands may be provided to the test application as, for example, scripts of commands to be interpreted by the test application. The commands instruct the test application to generate sequences of test data for testing normal operation of the system under test. The test application then cooperates with other elements in the host system to communicate the desired test data to the system under test and verifies proper operation of the system under test in response to the generated test data.
In addition to testing proper operation of the subsystem in response to programmable sequences of test data, failure modes as noted above often involve changes to the “real-world” environment in which the system under test is functioning. Simulating such failure modes typically requires manual intervention in the testing process. For example, to verify proper operation of a system under test in response to loss of power, manual intervention is typically required to remove power supplied to the system under test. The test application then verifies proper operation of the system under test in response to the manually generated stimulus. Or, for example, in the case of automated testing of a storage subsystem, manual intervention may be required to remove or insert a disk drive to verify operation of the subsystem in response thereto. Similarly, to test physical connections of components in the system or to verify operation of status indicators and displays, manual intervention is required to provide the desired physical stimuli or to verify operation of the indicators.
It is generally a problem to require manual intervention in a testing process. Manual intervention introduces a probability of human error in the automated testing process and also slows the automated testing process when manual intervention is required. It is also a continuing problem to make automated test systems flexible to adapt to varying real-world stimulus needs of a system under test and scalable to allow for larger number of such required stimuli while maintaining simplicity and associated reduced costs.
It is therefore evident from the above discussion that a need exists for improved automated testing procedures and systems to reduce or eliminate reliance on manual intervention for testing operation of a system in response to “real-world” stimuli and for verification of physical aspects of the system under test including various connections and status indicators.